package user

import (
	"fmt"
	"runtime"
)

// UserExists 检查用户是否存在于系统中
// Linux系统仅检查支持登录的用户（具有有效shell的用户）
func UserExists(username string) (bool, error) {
	// 复用ListSystemUsers函数获取系统用户列表
	users, err := ListSystemUsers()
	if err != nil {
		return false, fmt.Errorf("获取系统用户列表失败: %v", err)
	}

	// 在返回的用户列表中查找指定用户名
	for _, user := range users {
		if user.Username == username {
			return true, nil
		}
	}

	return false, nil
}

// IsValidLoginUser 检查用户是否为有效登录用户
// 提供更详细的检查逻辑
func IsValidLoginUser(username string) (bool, string, error) {
	// 复用ListSystemUsers函数获取系统用户列表
	users, err := ListSystemUsers()
	if err != nil {
		return false, "", fmt.Errorf("获取系统用户列表失败: %v", err)
	}

	// 在返回的用户列表中查找指定用户名
	for _, user := range users {
		if user.Username == username {
			if runtime.GOOS == "windows" {
				return true, "Windows用户", nil
			} else {
				// Linux系统返回更详细信息
				if user.IsSystem {
					return false, "系统用户", nil
				}
				return true, "有效登录用户", nil
			}
		}
	}

	return false, "用户不存在", nil
}
